/* fft1024_table. */

#include <stdint.h>
#include "arm_math.h"


/* from cos(0) to cos(2*pi). */
int32_t fft1024_cosTable[1024] =
{
     1000,       999,       999,       999,       999,       999,       999,       999,       998,       998,       998,       997,       997,       996,       996,       995,
      995,       994,       993,       993,       992,       991,       990,       990,       989,       988,       987,       986,       985,       984,       983,       981,
      980,       979,       978,       977,       975,       974,       972,       971,       970,       968,       966,       965,       963,       962,       960,       958,
      956,       955,       953,       951,       949,       947,       945,       943,       941,       939,       937,       935,       932,       930,       928,       926,
      923,       921,       919,       916,       914,       911,       909,       906,       903,       901,       898,       895,       893,       890,       887,       884,
      881,       879,       876,       873,       870,       867,       863,       860,       857,       854,       851,       848,       844,       841,       838,       834,
      831,       828,       824,       821,       817,       814,       810,       806,       803,       799,       795,       792,       788,       784,       780,       776,
      773,       769,       765,       761,       757,       753,       749,       745,       740,       736,       732,       728,       724,       720,       715,       711,
      707,       702,       698,       693,       689,       685,       680,       676,       671,       666,       662,       657,       653,       648,       643,       639,
      634,       629,       624,       620,       615,       610,       605,       600,       595,       590,       585,       580,       575,       570,       565,       560,
      555,       550,       545,       540,       534,       529,       524,       519,       514,       508,       503,       498,       492,       487,       482,       476,
      471,       465,       460,       455,       449,       444,       438,       433,       427,       422,       416,       410,       405,       399,       393,       388,
      382,       377,       371,       365,       359,       354,       348,       342,       336,       331,       325,       319,       313,       307,       302,       296,
      290,       284,       278,       272,       266,       260,       254,       248,       242,       237,       231,       225,       219,       213,       207,       201,
      195,       189,       183,       177,       170,       164,       158,       152,       146,       140,       134,       128,       122,       116,       110,       104,
       98,        91,        85,        79,        73,        67,        61,        55,        49,        42,        36,        30,        24,        18,        12,         6,
        0,        -6,       -12,       -18,       -24,       -30,       -36,       -42,       -49,       -55,       -61,       -67,       -73,       -79,       -85,       -91,
      -98,      -104,      -110,      -116,      -122,      -128,      -134,      -140,      -146,      -152,      -158,      -164,      -170,      -177,      -183,      -189,
     -195,      -201,      -207,      -213,      -219,      -225,      -231,      -237,      -242,      -248,      -254,      -260,      -266,      -272,      -278,      -284,
     -290,      -296,      -302,      -307,      -313,      -319,      -325,      -331,      -336,      -342,      -348,      -354,      -359,      -365,      -371,      -377,
     -382,      -388,      -393,      -399,      -405,      -410,      -416,      -422,      -427,      -433,      -438,      -444,      -449,      -455,      -460,      -465,
     -471,      -476,      -482,      -487,      -492,      -498,      -503,      -508,      -514,      -519,      -524,      -529,      -534,      -540,      -545,      -550,
     -555,      -560,      -565,      -570,      -575,      -580,      -585,      -590,      -595,      -600,      -605,      -610,      -615,      -620,      -624,      -629,
     -634,      -639,      -643,      -648,      -653,      -657,      -662,      -667,      -671,      -676,      -680,      -685,      -689,      -693,      -698,      -702,
     -707,      -711,      -715,      -720,      -724,      -728,      -732,      -736,      -740,      -745,      -749,      -753,      -757,      -761,      -765,      -769,
     -773,      -776,      -780,      -784,      -788,      -792,      -795,      -799,      -803,      -806,      -810,      -814,      -817,      -821,      -824,      -828,
     -831,      -834,      -838,      -841,      -844,      -848,      -851,      -854,      -857,      -860,      -863,      -867,      -870,      -873,      -876,      -879,
     -881,      -884,      -887,      -890,      -893,      -895,      -898,      -901,      -903,      -906,      -909,      -911,      -914,      -916,      -919,      -921,
     -923,      -926,      -928,      -930,      -932,      -935,      -937,      -939,      -941,      -943,      -945,      -947,      -949,      -951,      -953,      -955,
     -956,      -958,      -960,      -962,      -963,      -965,      -966,      -968,      -970,      -971,      -972,      -974,      -975,      -977,      -978,      -979,
     -980,      -981,      -983,      -984,      -985,      -986,      -987,      -988,      -989,      -990,      -990,      -991,      -992,      -993,      -993,      -994,
     -995,      -995,      -996,      -996,      -997,      -997,      -998,      -998,      -998,      -999,      -999,      -999,      -999,      -999,      -999,      -999,
    -1000,      -999,      -999,      -999,      -999,      -999,      -999,      -999,      -998,      -998,      -998,      -997,      -997,      -996,      -996,      -995,
     -995,      -994,      -993,      -993,      -992,      -991,      -990,      -990,      -989,      -988,      -987,      -986,      -985,      -984,      -983,      -981,
     -980,      -979,      -978,      -977,      -975,      -974,      -972,      -971,      -970,      -968,      -966,      -965,      -963,      -962,      -960,      -958,
     -956,      -955,      -953,      -951,      -949,      -947,      -945,      -943,      -941,      -939,      -937,      -935,      -932,      -930,      -928,      -926,
     -923,      -921,      -919,      -916,      -914,      -911,      -909,      -906,      -903,      -901,      -898,      -895,      -893,      -890,      -887,      -884,
     -881,      -879,      -876,      -873,      -870,      -867,      -863,      -860,      -857,      -854,      -851,      -848,      -844,      -841,      -838,      -834,
     -831,      -828,      -824,      -821,      -817,      -814,      -810,      -806,      -803,      -799,      -795,      -792,      -788,      -784,      -780,      -776,
     -773,      -769,      -765,      -761,      -757,      -753,      -749,      -745,      -740,      -736,      -732,      -728,      -724,      -720,      -715,      -711,
     -707,      -702,      -698,      -693,      -689,      -685,      -680,      -676,      -671,      -666,      -662,      -657,      -653,      -648,      -643,      -639,
     -634,      -629,      -624,      -620,      -615,      -610,      -605,      -600,      -595,      -590,      -585,      -580,      -575,      -570,      -565,      -560,
     -555,      -550,      -545,      -540,      -534,      -529,      -524,      -519,      -514,      -508,      -503,      -498,      -492,      -487,      -482,      -476,
     -471,      -465,      -460,      -455,      -449,      -444,      -438,      -433,      -427,      -422,      -416,      -410,      -405,      -399,      -393,      -388,
     -382,      -377,      -371,      -365,      -359,      -354,      -348,      -342,      -336,      -331,      -325,      -319,      -313,      -307,      -302,      -296,
     -290,      -284,      -278,      -272,      -266,      -260,      -254,      -248,      -242,      -237,      -231,      -225,      -219,      -213,      -207,      -201,
     -195,      -189,      -183,      -177,      -170,      -164,      -158,      -152,      -146,      -140,      -134,      -128,      -122,      -116,      -110,      -104,
      -98,       -91,       -85,       -79,       -73,       -67,       -61,       -55,       -49,       -42,       -36,       -30,       -24,       -18,       -12,        -6,
        0,         6,        12,        18,        24,        30,        36,        42,        49,        55,        61,        67,        73,        79,        85,        91,
       98,       104,       110,       116,       122,       128,       134,       140,       146,       152,       158,       164,       170,       177,       183,       189,
      195,       201,       207,       213,       219,       225,       231,       237,       242,       248,       254,       260,       266,       272,       278,       284,
      290,       296,       302,       307,       313,       319,       325,       331,       336,       342,       348,       354,       359,       365,       371,       377,
      382,       388,       393,       399,       405,       410,       416,       422,       427,       433,       438,       444,       449,       455,       460,       465,
      471,       476,       482,       487,       492,       498,       503,       508,       514,       519,       524,       529,       534,       540,       545,       550,
      555,       560,       565,       570,       575,       580,       585,       590,       595,       600,       605,       610,       615,       620,       624,       629,
      634,       639,       643,       648,       653,       657,       662,       667,       671,       676,       680,       685,       689,       693,       698,       702,
      707,       711,       715,       720,       724,       728,       732,       736,       740,       745,       749,       753,       757,       761,       765,       769,
      773,       776,       780,       784,       788,       792,       795,       799,       803,       806,       810,       814,       817,       821,       824,       828,
      831,       834,       838,       841,       844,       848,       851,       854,       857,       860,       863,       867,       870,       873,       876,       879,
      881,       884,       887,       890,       893,       895,       898,       901,       903,       906,       909,       911,       914,       916,       919,       921,
      923,       926,       928,       930,       932,       935,       937,       939,       941,       943,       945,       947,       949,       951,       953,       955,
      956,       958,       960,       962,       963,       965,       966,       968,       970,       971,       972,       974,       975,       977,       978,       979,
      980,       981,       983,       984,       985,       986,       987,       988,       989,       990,       990,       991,       992,       993,       993,       994,
      995,       995,       996,       996,       997,       997,       998,       998,       998,       999,       999,       999,       999,       999,       999,       999,
};

/* from sin(0) to sin(2*pi). */
int32_t fft1024_sinTable[1024] =
{
        0,        -6,       -12,       -18,       -24,       -30,       -36,       -42,       -49,       -55,       -61,       -67,       -73,       -79,       -85,       -91,
      -98,      -104,      -110,      -116,      -122,      -128,      -134,      -140,      -146,      -152,      -158,      -164,      -170,      -177,      -183,      -189,
     -195,      -201,      -207,      -213,      -219,      -225,      -231,      -237,      -242,      -248,      -254,      -260,      -266,      -272,      -278,      -284,
     -290,      -296,      -302,      -307,      -313,      -319,      -325,      -331,      -336,      -342,      -348,      -354,      -359,      -365,      -371,      -377,
     -382,      -388,      -393,      -399,      -405,      -410,      -416,      -422,      -427,      -433,      -438,      -444,      -449,      -455,      -460,      -465,
     -471,      -476,      -482,      -487,      -492,      -498,      -503,      -508,      -514,      -519,      -524,      -529,      -534,      -540,      -545,      -550,
     -555,      -560,      -565,      -570,      -575,      -580,      -585,      -590,      -595,      -600,      -605,      -610,      -615,      -620,      -624,      -629,
     -634,      -639,      -643,      -648,      -653,      -657,      -662,      -666,      -671,      -676,      -680,      -685,      -689,      -693,      -698,      -702,
     -707,      -711,      -715,      -720,      -724,      -728,      -732,      -736,      -740,      -745,      -749,      -753,      -757,      -761,      -765,      -769,
     -773,      -776,      -780,      -784,      -788,      -792,      -795,      -799,      -803,      -806,      -810,      -814,      -817,      -821,      -824,      -828,
     -831,      -834,      -838,      -841,      -844,      -848,      -851,      -854,      -857,      -860,      -863,      -867,      -870,      -873,      -876,      -879,
     -881,      -884,      -887,      -890,      -893,      -895,      -898,      -901,      -903,      -906,      -909,      -911,      -914,      -916,      -919,      -921,
     -923,      -926,      -928,      -930,      -932,      -935,      -937,      -939,      -941,      -943,      -945,      -947,      -949,      -951,      -953,      -955,
     -956,      -958,      -960,      -962,      -963,      -965,      -966,      -968,      -970,      -971,      -972,      -974,      -975,      -977,      -978,      -979,
     -980,      -981,      -983,      -984,      -985,      -986,      -987,      -988,      -989,      -990,      -990,      -991,      -992,      -993,      -993,      -994,
     -995,      -995,      -996,      -996,      -997,      -997,      -998,      -998,      -998,      -999,      -999,      -999,      -999,      -999,      -999,      -999,
    -1000,      -999,      -999,      -999,      -999,      -999,      -999,      -999,      -998,      -998,      -998,      -997,      -997,      -996,      -996,      -995,
     -995,      -994,      -993,      -993,      -992,      -991,      -990,      -990,      -989,      -988,      -987,      -986,      -985,      -984,      -983,      -981,
     -980,      -979,      -978,      -977,      -975,      -974,      -972,      -971,      -970,      -968,      -966,      -965,      -963,      -962,      -960,      -958,
     -956,      -955,      -953,      -951,      -949,      -947,      -945,      -943,      -941,      -939,      -937,      -935,      -932,      -930,      -928,      -926,
     -923,      -921,      -919,      -916,      -914,      -911,      -909,      -906,      -903,      -901,      -898,      -895,      -893,      -890,      -887,      -884,
     -881,      -879,      -876,      -873,      -870,      -867,      -863,      -860,      -857,      -854,      -851,      -848,      -844,      -841,      -838,      -834,
     -831,      -828,      -824,      -821,      -817,      -814,      -810,      -806,      -803,      -799,      -795,      -792,      -788,      -784,      -780,      -776,
     -773,      -769,      -765,      -761,      -757,      -753,      -749,      -745,      -740,      -736,      -732,      -728,      -724,      -720,      -715,      -711,
     -707,      -702,      -698,      -693,      -689,      -685,      -680,      -676,      -671,      -666,      -662,      -657,      -653,      -648,      -643,      -639,
     -634,      -629,      -624,      -620,      -615,      -610,      -605,      -600,      -595,      -590,      -585,      -580,      -575,      -570,      -565,      -560,
     -555,      -550,      -545,      -540,      -534,      -529,      -524,      -519,      -514,      -508,      -503,      -498,      -492,      -487,      -482,      -476,
     -471,      -465,      -460,      -455,      -449,      -444,      -438,      -433,      -427,      -422,      -416,      -410,      -405,      -399,      -393,      -388,
     -382,      -377,      -371,      -365,      -359,      -354,      -348,      -342,      -336,      -331,      -325,      -319,      -313,      -307,      -302,      -296,
     -290,      -284,      -278,      -272,      -266,      -260,      -254,      -248,      -242,      -237,      -231,      -225,      -219,      -213,      -207,      -201,
     -195,      -189,      -183,      -177,      -170,      -164,      -158,      -152,      -146,      -140,      -134,      -128,      -122,      -116,      -110,      -104,
      -98,       -91,       -85,       -79,       -73,       -67,       -61,       -55,       -49,       -42,       -36,       -30,       -24,       -18,       -12,        -6,
        0,         6,        12,        18,        24,        30,        36,        42,        49,        55,        61,        67,        73,        79,        85,        91,
       98,       104,       110,       116,       122,       128,       134,       140,       146,       152,       158,       164,       170,       177,       183,       189,
      195,       201,       207,       213,       219,       225,       231,       237,       242,       248,       254,       260,       266,       272,       278,       284,
      290,       296,       302,       307,       313,       319,       325,       331,       336,       342,       348,       354,       359,       365,       371,       377,
      382,       388,       393,       399,       405,       410,       416,       422,       427,       433,       438,       444,       449,       455,       460,       465,
      471,       476,       482,       487,       492,       498,       503,       508,       514,       519,       524,       529,       534,       540,       545,       550,
      555,       560,       565,       570,       575,       580,       585,       590,       595,       600,       605,       610,       615,       620,       624,       629,
      634,       639,       643,       648,       653,       657,       662,       666,       671,       676,       680,       685,       689,       693,       698,       702,
      707,       711,       715,       720,       724,       728,       732,       736,       740,       745,       749,       753,       757,       761,       765,       769,
      773,       776,       780,       784,       788,       792,       795,       799,       803,       806,       810,       814,       817,       821,       824,       828,
      831,       834,       838,       841,       844,       848,       851,       854,       857,       860,       863,       867,       870,       873,       876,       879,
      881,       884,       887,       890,       893,       895,       898,       901,       903,       906,       909,       911,       914,       916,       919,       921,
      923,       926,       928,       930,       932,       935,       937,       939,       941,       943,       945,       947,       949,       951,       953,       955,
      956,       958,       960,       962,       963,       965,       966,       968,       970,       971,       972,       974,       975,       977,       978,       979,
      980,       981,       983,       984,       985,       986,       987,       988,       989,       990,       990,       991,       992,       993,       993,       994,
      995,       995,       996,       996,       997,       997,       998,       998,       998,       999,       999,       999,       999,       999,       999,       999,
     1000,       999,       999,       999,       999,       999,       999,       999,       998,       998,       998,       997,       997,       996,       996,       995,
      995,       994,       993,       993,       992,       991,       990,       990,       989,       988,       987,       986,       985,       984,       983,       981,
      980,       979,       978,       977,       975,       974,       972,       971,       970,       968,       966,       965,       963,       962,       960,       958,
      956,       955,       953,       951,       949,       947,       945,       943,       941,       939,       937,       935,       932,       930,       928,       926,
      923,       921,       919,       916,       914,       911,       909,       906,       903,       901,       898,       895,       893,       890,       887,       884,
      881,       879,       876,       873,       870,       867,       863,       860,       857,       854,       851,       848,       844,       841,       838,       834,
      831,       828,       824,       821,       817,       814,       810,       806,       803,       799,       795,       792,       788,       784,       780,       776,
      773,       769,       765,       761,       757,       753,       749,       745,       740,       736,       732,       728,       724,       720,       715,       711,
      707,       702,       698,       693,       689,       685,       680,       676,       671,       666,       662,       657,       653,       648,       643,       639,
      634,       629,       624,       620,       615,       610,       605,       600,       595,       590,       585,       580,       575,       570,       565,       560,
      555,       550,       545,       540,       534,       529,       524,       519,       514,       508,       503,       498,       492,       487,       482,       476,
      471,       465,       460,       455,       449,       444,       438,       433,       427,       421,       416,       410,       405,       399,       393,       388,
      382,       377,       371,       365,       359,       354,       348,       342,       336,       331,       325,       319,       313,       307,       302,       296,
      290,       284,       278,       272,       266,       260,       254,       248,       242,       237,       231,       225,       219,       213,       207,       201,
      195,       189,       183,       177,       170,       164,       158,       152,       146,       140,       134,       128,       122,       116,       110,       104,
       98,        91,        85,        79,        73,        67,        61,        55,        49,        42,        36,        30,        24,        18,        12,         6,
};


#define POWERQUAD_SELFTEST
#ifdef POWERQUAD_SELFTEST
//  1. harmonic : 70%
//  3. harmonic : 10%
//  5. harmonic :  5%
// 50. harmonic :  8% (60°)
q31_t fft1024_selftestData[2048] =
{
  2185510, 0, 45769389, 0, 34691344, 0, 72801115, 0, 62429527, 0, 93408188, 0, 83513387, 0, 106643812, 0,
  97796603, 0, 113299908, 0, 106711318, 0, 115478468, 0, 112619430, 0, 115780379, 0, 117918583, 0, 116405726, 0,
  124221893, 0, 118480260, 0, 131892762, 0, 121830502, 0, 140078292, 0, 125259734, 0, 147198383, 0, 127191950, 0,
  151680999, 0, 126418481, 0, 152648273, 0, 122650524, 0, 150283745, 0, 116660910, 0, 145737745, 0, 109959558, 0,
  140608058, 0, 104128963, 0, 136199289, 0, 100080752, 0, 132854492, 0, 97531243, 0, 129632572, 0, 94918515, 0,
  124481060, 0, 89822603, 0, 114871018, 0, 79762768, 0, 98686057, 0, 63100395, 0, 75055216, 0, 39726905, 0,
  44828424, 0, 11282664, 0, 10511599, 0, -19187644, 0, -24335364, 0, -48041895, 0, -56046936, 0, -72046317, 0,
  -81834255, 0, -89246930, 0, -100477080, 0, -99420573, 0, -112503147, 0, -103966925, 0, -119811968, 0, -105297584, 0,
  -124892280, 0, -105950380, 0, -129918692, 0, -107745311, 0, -136045434, 0, -111272357, 0, -143133185, 0, -115871763, 0,
  -149980085, 0, -120082836, 0, -154941125, 0, -122365608, 0, -156679811, 0, -121803867, 0, -154753291, 0, -118512248, 0,
  -149801790, 0, -113588335, 0, -143268577, 0, -108628402, 0, -136759693, 0, -104996120, 0, -131294782, 0, -103133501, 0,
  -126748421, 0, -102194708, 0, -121716601, 0, -100168324, 0, -113888399, 0, -94473952, 0, -100814806, 0, -82840214, 0,
  -80814125, 0, -64159464, 0, -53693098, 0, -39011685, 0, -21018220, 0, -9658780, 0, 14175950, 0, 20507426, 0,
  48159347, 0, 47889515, 0, 77509280, 0, 69676475, 0, 100012124, 0, 84574915, 0, 115167865, 0, 93042723, 0,
  124140916, 0, 96962549, 0, 129193597, 0, 98886643, 0, 132816138, 0, 101129120, 0, 136865697, 0, 105025680, 0,
  142012383, 0, 110609532, 0, 147669334, 0, 116793282, 0, 152401879, 0, 121958658, 0, 154634784, 0, 124708234, 0,
  153370954, 0, 124479468, 0, 148637748, 0, 121780334, 0, 141486385, 0, 117954872, 0, 133544457, 0, 114570304, 0,
  126296099, 0, 112666415, 0, 120373668, 0, 112166861, 0, 115147597, 0, 111698214, 0, 108795439, 0, 108914852, 0,
  98855095, 0, 101239925, 0, 83085183, 0, 86773618, 0, 60334585, 0, 65048690, 0, 31108678, 0, 37357189, 0,
  -2381597, 0, 6516824, 0, -36724224, 0, -23860393, 0, -68207572, 0, -50360464, 0, -93822874, 0, -70692212, 0,
  -112036230, 0, -84239916, 0, -123079588, 0, -92069790, 0, -128678593, 0, -96406985, 0, -131330511, 0, -99781875, 0,
  -133397781, 0, -104153143, 0, -136338078, 0, -110312324, 0, -140331474, 0, -117762702, 0, -144412779, 0, -125086699, 0,
  -147029028, 0, -130636085, 0, -146787501, 0, -133264401, 0, -143094909, 0, -132812279, 0, -136436396, 0, -130156302, 0,
  -128185204, 0, -126802774, 0, -120016740, 0, -124185421, 0, -113156257, 0, -122944303, 0, -107758960, 0, -122477453, 0,
  -102678649, 0, -120960848, 0, -95740712, 0, -115860683, 0, -84448386, 0, -104777347, 0, -66886274, 0, -86330856, 0,
  -42503248, 0, -60771339, 0, -12489148, 0, -30086438, 0, 20403908, 0, 2450446, 0, 52552688, 0, 33152453, 0,
  80444227, 0, 58926027, 0, 101623160, 0, 78078846, 0, 115292633, 0, 90665579, 0, 122378061, 0, 98270142, 0,
  125050482, 0, 103318966, 0, 125892499, 0, 108179286, 0, 127008100, 0, 114362999, 0, 129386634, 0, 122107560, 0,
  132728996, 0, 130459910, 0, 135769272, 0, 137801816, 0, 136942269, 0, 142594085, 0, 135123452, 0, 144041713, 0,
  130147714, 0, 142418909, 0, 122903597, 0, 138927646, 0, 114965821, 0, 135145270, 0, 107909123, 0, 132277855, 0,
  102573106, 0, 130516045, 0, 98573430, 0, 128758687, 0, 94268848, 0, 124837203, 0, 87227005, 0, 116188436, 0,
  75045460, 0, 100753529, 0, 56246577, 0, 77788168, 0, 30927213, 0, 48290199, 0, 921681, 0, 14878203, 0,
  -30597461, 0, -18855861, 0, -59960602, 0, -49313062, 0, -84009090, 0, -73854056, 0, -100936122, 0, -91446888, 0,
  -110685361, 0, -102789160, 0, -114787096, 0, -109881422, 0, -115707413, 0, -115218195, 0, -115951923, 0, -120890572, 0,
  -117243165, 0, -127915053, 0, -120053033, 0, -136011008, 0, -123633856, 0, -143878987, 0, -126505213, 0, -149846900, 0,
  -127187039, 0, -152618717, 0, -124883744, 0, -151828889, 0, -119849665, 0, -148185781, 0, -113292920, 0, -143148516, 0,
  -106854820, 0, -138263569, 0, -101868294, 0, -134422094, 0, -98688902, 0, -131335934, 0, -96371970, 0, -127454787, 0,
  -92845437, 0, -120386142, 0, -85545189, 0, -107691967, 0, -72304838, 0, -87790671, 0, -52189681, 0, -60643788, 0,
  -25973543, 0, -27973367, 0, 3924478, 0, 7084425, 0, 34040138, 0, 40788158, 0, 60810329, 0, 69799082, 0,
  81553153, 0, 92054844, 0, 95157569, 0, 107222854, 0, 102260378, 0, 116594676, 0, 104867666, 0, 122477453, 0,
  105569943, 0, 127310475, 0, 106636592, 0, 132823250, 0, 109307557, 0, 139525277, 0, 113518325, 0, 146688076, 0,
  118129315, 0, 152795460, 0, 121543918, 0, 156266415, 0, 122459115, 0, 156159006, 0, 120449882, 0, 152578034, 0,
  116158232, 0, 146627347, 0, 111013152, 0, 139925445, 0, 106590634, 0, 133873707, 0, 103865157, 0, 128966520, 0,
  102651999, 0, 124423952, 0, 101474996, 0, 118312597, 0, 97939782, 0, 108140485, 0, 89504415, 0, 91733169, 0,
  74386797, 0, 68086335, 0, 52287965, 0, 37887466, 0, 24665699, 0, 3507807, 0, -5554817, 0, -31552002, 0,
  -34751180, 0, -63588613, 0, -59604326, 0, -89690256, 0, -77997972, 0, -108470142, 0, -89521054, 0, -120302136, 0,
  -95416621, 0, -126996064, 0, -98013614, 0, -131044126, 0, -99855420, 0, -134714458, 0, -102837743, 0, -139311852, 0,
  -107653795, 0, -144854345, 0, -113723872, 0, -150255440, 0, -119604359, 0, -153913807, 0, -123695174, 0, -154464640, 0,
  -124959004, 0, -151392996, 0, -123368490, 0, -145268387, 0, -119906822, 0, -137509004, 0, -116121721, 0, -129767228, 0,
  -113407341, 0, -123177163, 0, -112297890, 0, -117763907, 0, -112059615, 0, -112260399, 0, -110762098, 0, -104430006, 0,
  -105833824, 0, -91805132, 0, -94924913, 0, -72593112, 0, -76779021, 0, -46429437, 0, -51801848, 0, -14702239, 0,
  -22112363, 0, 19683411, 0, 8959695, 0, 53038758, 0, 37773492, 0, 81885335, 0, 61378048, 0, 103881171, 0,
  78282991, 0, 118374521, 0, 88748593, 0, 126411132, 0, 94513004, 0, 130211676, 0, 98069909, 0, 132318147, 0,
  101762157, 0, 134716683, 0, 107012249, 0, 138241523, 0, 113950255, 0, 142452979, 0, 121547244, 0, 146003582, 0,
  128174146, 0, 147326788, 0, 132351425, 0, 145367621, 0, 133390135, 0, 140066017, 0, 131673004, 0, 132403537, 0,
  128466306, 0, 123994860, 0, 125336252, 0, 116383140, 0, 123399027, 0, 110316551, 0, 122703263, 0, 105297584, 0,
  122000986, 0, 99600753, 0, 119022813, 0, 90782744, 0, 111186263, 0, 76524427, 0, 96501134, 0, 55514543, 0,
  74354017, 0, 28058714, 0, 45886355, 0, -3814369, 0, 13816787, 0, -36805585, 0, -18249279, 0, -67218239, 0,
  -46800670, 0, -91965039, 0, -69367735, 0, -109375889, 0, -85123574, 0, -119543166, 0, -94948436, 0, -124103161, 0,
  -100954060, 0, -125548210, 0, -105650895, 0, -126323559, 0, -111059483, 0, -128029533, 0, -118076244, 0, -131000514, 0,
  -126301668, 0, -134386780, 0, -134364139, 0, -136677597, 0, -140589748, 0, -136443113, 0, -143744586, 0, -132997137, 0,
  -143555881, 0, -126719811, 0, -140808551, 0, -118913864, 0, -136979974, 0, -111250043, 0, -133555935, 0, -105018442, 0,
  -131297400, 0, -100482529, 0, -129753413, 0, -96601204, 0, -127229566, 0, -91251865, 0, -121254959, 0, -81902264, 0,
  -109404049, 0, -66508715, 0, -90192040, 0, -44326009, 0, -63724733, 0, -16335051, 0, -31861290, 0, 14878203, 0,
  2185510, 0, 45769389, 0, 34691344, 0, 72801115, 0, 62429527, 0, 93408188, 0, 83513387, 0, 106643812, 0,
  97796603, 0, 113299908, 0, 106711318, 0, 115478468, 0, 112619430, 0, 115780379, 0, 117918583, 0, 116405726, 0,
  124221893, 0, 118480260, 0, 131892762, 0, 121830502, 0, 140078292, 0, 125259734, 0, 147198383, 0, 127191950, 0,
  151680999, 0, 126418481, 0, 152648273, 0, 122650524, 0, 150283745, 0, 116660910, 0, 145737745, 0, 109959558, 0,
  140608058, 0, 104128963, 0, 136199289, 0, 100080752, 0, 132854492, 0, 97531243, 0, 129632572, 0, 94918515, 0,
  124481060, 0, 89822603, 0, 114871018, 0, 79762768, 0, 98686057, 0, 63100395, 0, 75055216, 0, 39726905, 0,
  44828424, 0, 11282664, 0, 10511599, 0, -19187644, 0, -24335364, 0, -48041895, 0, -56046936, 0, -72046317, 0,
  -81834255, 0, -89246930, 0, -100477080, 0, -99420573, 0, -112503147, 0, -103966925, 0, -119811968, 0, -105297584, 0,
  -124892280, 0, -105950380, 0, -129918692, 0, -107745311, 0, -136045434, 0, -111272357, 0, -143133185, 0, -115871763, 0,
  -149980085, 0, -120082836, 0, -154941125, 0, -122365608, 0, -156679811, 0, -121803867, 0, -154753291, 0, -118512248, 0,
  -149801790, 0, -113588335, 0, -143268577, 0, -108628402, 0, -136759693, 0, -104996120, 0, -131294782, 0, -103133501, 0,
  -126748421, 0, -102194708, 0, -121716601, 0, -100168324, 0, -113888399, 0, -94473952, 0, -100814806, 0, -82840214, 0,
  -80814125, 0, -64159464, 0, -53693098, 0, -39011685, 0, -21018220, 0, -9658780, 0, 14175950, 0, 20507426, 0,
  48159347, 0, 47889515, 0, 77509280, 0, 69676475, 0, 100012124, 0, 84574915, 0, 115167865, 0, 93042723, 0,
  124140916, 0, 96962549, 0, 129193597, 0, 98886643, 0, 132816138, 0, 101129120, 0, 136865697, 0, 105025680, 0,
  142012383, 0, 110609532, 0, 147669334, 0, 116793282, 0, 152401879, 0, 121958658, 0, 154634784, 0, 124708234, 0,
  153370954, 0, 124479468, 0, 148637748, 0, 121780334, 0, 141486385, 0, 117954872, 0, 133544457, 0, 114570304, 0,
  126296099, 0, 112666415, 0, 120373668, 0, 112166861, 0, 115147597, 0, 111698214, 0, 108795439, 0, 108914852, 0,
  98855095, 0, 101239925, 0, 83085183, 0, 86773618, 0, 60334585, 0, 65048690, 0, 31108678, 0, 37357189, 0,
  -2381597, 0, 6516824, 0, -36724224, 0, -23860393, 0, -68207572, 0, -50360464, 0, -93822874, 0, -70692212, 0,
  -112036230, 0, -84239916, 0, -123079588, 0, -92069790, 0, -128678593, 0, -96406985, 0, -131330511, 0, -99781875, 0,
  -133397781, 0, -104153143, 0, -136338078, 0, -110312324, 0, -140331474, 0, -117762702, 0, -144412779, 0, -125086699, 0,
  -147029028, 0, -130636085, 0, -146787501, 0, -133264401, 0, -143094909, 0, -132812279, 0, -136436396, 0, -130156302, 0,
  -128185204, 0, -126802774, 0, -120016740, 0, -124185421, 0, -113156257, 0, -122944303, 0, -107758960, 0, -122477453, 0,
  -102678649, 0, -120960848, 0, -95740712, 0, -115860683, 0, -84448386, 0, -104777347, 0, -66886274, 0, -86330856, 0,
  -42503248, 0, -60771339, 0, -12489148, 0, -30086438, 0, 20403908, 0, 2450446, 0, 52552688, 0, 33152453, 0,
  80444227, 0, 58926027, 0, 101623160, 0, 78078846, 0, 115292633, 0, 90665579, 0, 122378061, 0, 98270142, 0,
  125050482, 0, 103318966, 0, 125892499, 0, 108179286, 0, 127008100, 0, 114362999, 0, 129386634, 0, 122107560, 0,
  132728996, 0, 130459910, 0, 135769272, 0, 137801816, 0, 136942269, 0, 142594085, 0, 135123452, 0, 144041713, 0,
  130147714, 0, 142418909, 0, 122903597, 0, 138927646, 0, 114965821, 0, 135145270, 0, 107909123, 0, 132277855, 0,
  102573106, 0, 130516045, 0, 98573430, 0, 128758687, 0, 94268848, 0, 124837203, 0, 87227005, 0, 116188436, 0,
  75045460, 0, 100753529, 0, 56246577, 0, 77788168, 0, 30927213, 0, 48290199, 0, 921681, 0, 14878203, 0,
  -30597461, 0, -18855861, 0, -59960602, 0, -49313062, 0, -84009090, 0, -73854056, 0, -100936122, 0, -91446888, 0,
  -110685361, 0, -102789160, 0, -114787096, 0, -109881422, 0, -115707413, 0, -115218195, 0, -115951923, 0, -120890572, 0,
  -117243165, 0, -127915053, 0, -120053033, 0, -136011008, 0, -123633856, 0, -143878987, 0, -126505213, 0, -149846900, 0,
  -127187039, 0, -152618717, 0, -124883744, 0, -151828889, 0, -119849665, 0, -148185781, 0, -113292920, 0, -143148516, 0,
  -106854820, 0, -138263569, 0, -101868294, 0, -134422094, 0, -98688902, 0, -131335934, 0, -96371970, 0, -127454787, 0,
  -92845437, 0, -120386142, 0, -85545189, 0, -107691967, 0, -72304838, 0, -87790671, 0, -52189681, 0, -60643788, 0,
  -25973543, 0, -27973367, 0, 3924478, 0, 7084425, 0, 34040138, 0, 40788158, 0, 60810329, 0, 69799082, 0,
  81553153, 0, 92054844, 0, 95157569, 0, 107222854, 0, 102260378, 0, 116594676, 0, 104867666, 0, 122477453, 0,
  105569943, 0, 127310475, 0, 106636592, 0, 132823250, 0, 109307557, 0, 139525277, 0, 113518325, 0, 146688076, 0,
  118129315, 0, 152795460, 0, 121543918, 0, 156266415, 0, 122459115, 0, 156159006, 0, 120449882, 0, 152578034, 0,
  116158232, 0, 146627347, 0, 111013152, 0, 139925445, 0, 106590634, 0, 133873707, 0, 103865157, 0, 128966520, 0,
  102651999, 0, 124423952, 0, 101474996, 0, 118312597, 0, 97939782, 0, 108140485, 0, 89504415, 0, 91733169, 0,
  74386797, 0, 68086335, 0, 52287965, 0, 37887466, 0, 24665699, 0, 3507807, 0, -5554817, 0, -31552002, 0,
  -34751180, 0, -63588613, 0, -59604326, 0, -89690256, 0, -77997972, 0, -108470142, 0, -89521054, 0, -120302136, 0,
  -95416621, 0, -126996064, 0, -98013614, 0, -131044126, 0, -99855420, 0, -134714458, 0, -102837743, 0, -139311852, 0,
  -107653795, 0, -144854345, 0, -113723872, 0, -150255440, 0, -119604359, 0, -153913807, 0, -123695174, 0, -154464640, 0,
  -124959004, 0, -151392996, 0, -123368490, 0, -145268387, 0, -119906822, 0, -137509004, 0, -116121721, 0, -129767228, 0,
  -113407341, 0, -123177163, 0, -112297890, 0, -117763907, 0, -112059615, 0, -112260399, 0, -110762098, 0, -104430006, 0,
  -105833824, 0, -91805132, 0, -94924913, 0, -72593112, 0, -76779021, 0, -46429437, 0, -51801848, 0, -14702239, 0,
  -22112363, 0, 19683411, 0, 8959695, 0, 53038758, 0, 37773492, 0, 81885335, 0, 61378048, 0, 103881171, 0,
  78282991, 0, 118374521, 0, 88748593, 0, 126411132, 0, 94513004, 0, 130211676, 0, 98069909, 0, 132318147, 0,
  101762157, 0, 134716683, 0, 107012249, 0, 138241523, 0, 113950255, 0, 142452979, 0, 121547244, 0, 146003582, 0,
  128174146, 0, 147326788, 0, 132351425, 0, 145367621, 0, 133390135, 0, 140066017, 0, 131673004, 0, 132403537, 0,
  128466306, 0, 123994860, 0, 125336252, 0, 116383140, 0, 123399027, 0, 110316551, 0, 122703263, 0, 105297584, 0,
  122000986, 0, 99600753, 0, 119022813, 0, 90782744, 0, 111186263, 0, 76524427, 0, 96501134, 0, 55514543, 0,
  74354017, 0, 28058714, 0, 45886355, 0, -3814369, 0, 13816787, 0, -36805585, 0, -18249279, 0, -67218239, 0,
  -46800670, 0, -91965039, 0, -69367735, 0, -109375889, 0, -85123574, 0, -119543166, 0, -94948436, 0, -124103161, 0,
  -100954060, 0, -125548210, 0, -105650895, 0, -126323559, 0, -111059483, 0, -128029533, 0, -118076244, 0, -131000514, 0,
  -126301668, 0, -134386780, 0, -134364139, 0, -136677597, 0, -140589748, 0, -136443113, 0, -143744586, 0, -132997137, 0,
  -143555881, 0, -126719811, 0, -140808551, 0, -118913864, 0, -136979974, 0, -111250043, 0, -133555935, 0, -105018442, 0,
  -131297400, 0, -100482529, 0, -129753413, 0, -96601204, 0, -127229566, 0, -91251865, 0, -121254959, 0, -81902264, 0,
  -109404049, 0, -66508715, 0, -90192040, 0, -44326009, 0, -63724733, 0, -16335051, 0, -31861290, 0, 14878203, 0
};
#endif

/* EOF. */

